home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 6.9 KB | 192 lines |
- 100 '***********************************************************************
- 110 '** ASYNCHRONOUS COMMUNICATIONS ADAPTER DRIVER **
- 120 '** **
- 130 '** VERSION 1.1 4 JULY, 1982 **
- 140 '***********************************************************************
- 150 '
- 160 SCREEN 0 : WIDTH 80 : KEY OFF : CLS
- 170 PRINT "SELECT THE COMMUNICATIONS MODE DESIRED BY NUMBER
- 180 PRINT "THEN PRESS ENTER
- 190 PRINT
- 200 PRINT "1 = 300 BAUD 7 BIT NO PARITY 1 STOP BIT
- 210 PRINT "2 = 300 BAUD 8 BIT NO PARITY 1 STOP BIT
- 220 PRINT "3 = CUSTOMIZED SETUP NEW MODE OF OPERATIONS
- 230 PRINT "4 = PERSONALIZED SETUP OLD MODE OF OPERATIONS
- 240 PRINT
- 250 PRINT "NOTE : SELECTION #1 IS THE MODE USED BY MANY TIME-SHAREING SYSTEMS
- 260 PRINT
- 270 INPUT SELECT
- 280 ON SELECT GOTO 300,400,500,2000
- 290 INPUT "INCORRECT SELECTION - TRY AGAIN - ":GOTO 270
- 300 '
- 310 '***********************************************************************
- 320 '** SELECTION #1 **
- 330 '***********************************************************************
- 340 CLEAR : POKE 106,0 ' CLEAR THE KEYBOARD BUFFER
- 350 OUT &H3FB,&H80 ' ACCESS THE DIVISOR LATCHES
- 360 OUT &H3F8,&H80 ' LSB OF BAUD RATE DIVISOR
- 370 OUT &H3F9,&H1 ' MSB FOR -300 BAUD-
- 380 OUT &H3FB,&H2 ' ACCESS TX AND RX - 7 BIT - NO PARITY
- 390 GOTO 3000
- 400 '
- 410 '***********************************************************************
- 420 '** SELECTION #2 **
- 430 '***********************************************************************
- 440 CLEAR : POKE 106,0 ' CLEAR THE KEYBOARD BUFFER
- 450 OUT &H3FB,&H80 ' ACCESS THE DIVISOR LATCHES
- 460 OUT &H3F8,&H80 ' LSB OF BAUD RATE DIVISOR
- 470 OUT &H3F9,&H1 ' MSB FOR -300 BAUD-
- 480 OUT &H3FB,&H3 ' ACCESS TX AND RX - 8 BIT - NO PARITY
- 490 GOTO 3000
- 500 '
- 510 '***********************************************************************
- 520 '** SELECTION #3 **
- 530 '***********************************************************************
- 540 CLS
- 550 PRINT "CUSTOMIZED SETUP PROCEDURES
- 560 PRINT
- 570 PRINT "SELECT THE BAUD RATE DESIRED -
- 580 PRINT
- 590 PRINT " 1 = 50 BAUD
- 600 PRINT " 2 = 75 BAUD
- 610 PRINT " 3 = 110 BAUD
- 620 PRINT " 4 = 134.5 BAUD
- 630 PRINT " 5 = 150 BAUD
- 640 PRINT " 6 = 300 BAUD
- 650 PRINT " 7 = 600 BAUD
- 660 PRINT " 8 = 1200 BAUD
- 670 PRINT " 9 = 1800 BAUD
- 680 PRINT "10 = 2000 BAUD
- 690 PRINT "11 = 2400 BAUD
- 700 PRINT "12 = 3600 BAUD
- 710 PRINT "13 = 4800 BAUD
- 720 PRINT "14 = 7200 BAUD
- 730 PRINT "15 = 9600 BAUD
- 740 PRINT
- 750 INPUT RATE
- 760 ON RATE GOTO 780,790,800,810,820,830,840,850,860,870,880,890,900,910,920
- 770 PRINT "ERROR ON BAUD RATE - SELECT AGAIN - ";:GOTO 740
- 780 CLS : MSB = &H9 : LSB = &H0 : BAUD = 50 : GOTO 930
- 790 CLS : MSB = &H6 : LSB = &H0 : BAUD = 75 : GOTO 930
- 800 CLS : MSB = &H4 : LSB = &H17 : BAUD = 110 : GOTO 930
- 810 CLS : MSB = &H3 : LSB = &H59 : BAUD = 134.5 : GOTO 930
- 820 CLS : MSB = &H3 : LSB = &H0 : BAUD = 150 : GOTO 930
- 830 CLS : MSB = &H1 : LSB = &H80 : BAUD = 300 : GOTO 930
- 840 CLS : MSB = &H0 : LSB = &HC0 : BAUD = 600 : GOTO 930
- 850 CLS : MSB = &H0 : LSB = &H60 : BAUD = 1200 : GOTO 930
- 860 CLS : MSB = &H0 : LSB = &H40 : BAUD = 1800 : GOTO 930
- 870 CLS : MSB = &H0 : LSB = &H3A : BAUD = 2000 : GOTO 930
- 880 CLS : MSB = &H0 : LSB = &H30 : BAUD = 2400 : GOTO 930
- 890 CLS : MSB = &H0 : LSB = &H20 : BAUD = 3600 : GOTO 930
- 900 CLS : MSB = &H0 : LSB = &H18 : BAUD = 4800 : GOTO 930
- 910 CLS : MSB = &H0 : LSB = &H10 : BAUD = 7200 : GOTO 930
- 920 CLS : MSB = &H0 : LSB = &HC : BAUD = 9600 : GOTO 930
- 930 '
- 940 PRINT "SELECT THE WORD LENGTH DESIRED -
- 950 PRINT
- 960 PRINT " 1 = 5 BITS
- 970 PRINT " 2 = 6 BITS
- 980 PRINT " 3 = 7 BITS
- 990 PRINT " 4 = 8 BITS
- 1000 PRINT
- 1010 INPUT WORDLENGTH
- 1020 ON WORDLENGTH GOTO 1040,1050,1060,1070
- 1030 PRINT "ERROR ON WORD LENGTH - SELECT AGAIN - ";:GOTO 1010
- 1040 CLS : BITS10 = 0 : GOTO 1080
- 1050 CLS : BITS10 = 1 : GOTO 1080
- 1060 CLS : BITS10 = 2 : GOTO 1080
- 1070 CLS : BITS10 = 3 : GOTO 1080
- 1080 '
- 1090 PRINT "SELECT THE NUMBER OF STOP BITS YOU DESIRE -
- 1100 PRINT
- 1110 PRINT " 1 = 1 STOP BIT FOR ALL WORD LENGTHS SELECTED
- 1120 PRINT
- 1130 PRINT " 2 = 1 1/2 STOP BITS IF 5 BIT WORD SELECTED OR
- 1140 PRINT " 2 STOP BITS IF 6-8 BIT WORD SELECTED
- 1150 PRINT
- 1160 INPUT STOPBITS
- 1170 ON STOPBITS GOTO 1190,1200
- 1180 PRINT "ERROR ON SELECTION - PLEASE SELECT AGAIN - ";:GOTO 1160
- 1190 CLS : BIT2 = 0 : GOTO 1210
- 1200 CLS : BIT2 = 4 : GOTO 1210
- 1210 '
- 1220 PRINT "DO YOU WANT A PARITY BIT ?
- 1230 PRINT
- 1240 PRINT " 1 = NO
- 1250 PRINT " 2 = YES
- 1260 PRINT
- 1270 INPUT PARITY
- 1280 ON PARITY GOTO 1300,1310
- 1290 PRINT "ERROR ON SELECTION - PLEASE SELECT AGAIN - ";:GOTO 1270
- 1300 CLS : BITS543 = 0 : GOTO 1540
- 1310 PRINT
- 1320 PRINT "DO YOU WANT ODD, EVEN, OR STICK PARITY ?
- 1330 PRINT
- 1340 PRINT " 1 = ODD
- 1350 PRINT " 2 = EVEN
- 1360 PRINT " 3 = STICK (ALWAYS ON OR OFF)
- 1370 PRINT
- 1380 INPUT PARITY
- 1390 ON PARITY GOTO 1410,1420,1430
- 1400 PRINT "ERROR ON SELECTION - PLEASE SELECT AGAIN - ";:GOTO 1380
- 1410 CLS : BITS543 = 8 : GOTO 1540
- 1420 CLS : BITS543 = 24 : GOTO 1540
- 1430 PRINT
- 1440 PRINT "DO YOU WANT THE PARITY ALWAYS SET TO A 1 OR 0 ?
- 1450 PRINT
- 1460 PRINT " 1 = 0 (ALWAYS)
- 1470 PRINT " 2 = 1 (ALWAYS)
- 1480 PRINT
- 1490 INPUT PARITY
- 1500 ON PARITY GOTO 1520,1530
- 1510 PRINT "ERROR ON SELECTION - PLEASE SELECT AGAIN - ";:GOTO 1490
- 1520 CLS : BITS543 = 56 : GOTO 1540
- 1530 CLS : BITS543 = 40 : GOTO 1540
- 1540 '
- 1550 PRINT "IF THIS IS THE MODE YOU WANT FOR YOUR PERSONALIZED SETUP -
- 1560 PRINT
- 1570 PRINT "REPLACE THE VALUES IN THE LISTING FOR 2060-2080 WITH THESE -
- 1580 PRINT "2060 OUT &H3F8,LSB (REPLACE LSB) WITH ";LSB
- 1590 PRINT "2070 OUT &H3F9,MSB (REPLACE MSB) WITH ";MSB
- 1600 PRINT "2080 OUT &H3FB,LCR (REPLACE LCR) WITH ";BITS10+BIT2+BITS543
- 1610 PRINT
- 1620 PRINT "AND RESAVE A COPY OF THIS PROGRAM OR JUST LINES 2000 TO 2080
- 1630 POKE 106,0
- 1640 OUT &H3FB,&H80
- 1650 OUT &H3F8,LSB
- 1660 OUT &H3F9,MSB
- 1670 OUT &H3FB,BITS10+BIT2+BITS543
- 1680 GOTO 3000
- 2000 '**********************************************************************
- 2010 '** PERSONALIZED DRIVER ROUTINE **
- 2020 '**********************************************************************
- 2030 '
- 2040 CLEAR : POKE 106,0
- 2050 OUT &H3FB,&H80
- 2060 OUT &H3F8,LSB
- 2070 OUT &H3F9,MSB
- 2080 OUT &H3FB,LCR
- 3000 '
- 3010 PRINT
- 3020 PRINT "WOULD YOU LIKE A SIMPLE DRIVER FOR COMMUNICATIONS ?
- 3030 PRINT
- 3040 PRINT "IF YOU SELECT YES, THIS SEGMENT WILL CLEAR THE SCREEN AND
- 3050 PRINT "HOOK YOU TO THE MODEM OR OTHER DEVICE.
- 3060 PRINT
- 3070 PRINT " 1 = YES
- 3080 PRINT " 2 = NO
- 3090 PRINT
- 3100 INPUT DRIVER
- 3110 ON DRIVER GOTO 3130,3140
- 3120 PRINT "ERROR ON SELECTION - PLEASE SELECT AGAIN ";:GOTO 3100
- 3130 CLS : GOTO 4000
- 3140 PRINT "BYE ";:END
- 4000 '**********************************************************************
- 4010 '** KEYBOARD DRIVER FOR COMMUNICATION **
- 4020 '**********************************************************************
- 4030 '
- 4040 CLEAR : POKE 106,0 : DEFINT A-Z
- 4050 IF (INP(1021) AND 1) <> 0 THEN D = INP(1016) : PRINT CHR$(D);
- 4060 A$ = INKEY$ : IF A$ = "" THEN 4050
- 4070 IF (INP(1021) AND 32) = 0 THEN 4070 ELSE OUT 1016,ASC(A$):PRINT A$; :GOTO 4050
-